package com.yuelao.yuelao_backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuelao.yuelao_backend.dto.InviteInfoDTO;
import com.yuelao.yuelao_backend.dto.InviteRankingDTO;
import com.yuelao.yuelao_backend.entity.InviteRecord;

import java.util.List;

public interface InviteService extends IService<InviteRecord> {

    /**
     * 获取用户邀请信息
     * @param userId 用户ID
     * @return 邀请信息
     */
    InviteInfoDTO getInviteInfo(Long userId);

    /**
     * 生成邀请链接/邀请码
     * @param userId 用户ID
     * @return 邀请码
     */
    String generateInviteLink(Long userId);

    /**
     * 使用邀请码注册
     * @param inviteCode 邀请码
     * @param inviteeId 被邀请人ID
     * @return 是否成功
     */
    boolean registerWithInvite(String inviteCode, Long inviteeId);

    /**
     * 领取邀请奖励
     * @param userId 用户ID
     * @param inviteRecordId 邀请记录ID
     * @return 是否成功
     */
    boolean claimInviteReward(Long userId, Long inviteRecordId);

    /**
     * 获取邀请排行榜
     * @param page 页码
     * @param size 每页数量
     * @return 排行榜列表
     */
    List<InviteRankingDTO> getInviteRanking(int page, int size);

    /**
     * 获取邀请活动信息
     * @return 邀请活动信息列表
     */
    List<String> getInviteEvents();
}